The present invention relates generally to the field of data processing or computing systems, and, more particularly, to remote monitoring of events in data processing or computing systems.
Data processing systems may periodically log events that occur during operation. An event log may be maintained for a variety of reasons, such as, but not limited to, record keeping, problem analysis and debugging, inventory management, and billing. For example, a retailer may have multiple stores that are spread apart geographically. Each store may have a retail point of sale (POS) data processing system that is used to process purchases by customers and may also be used to manage store inventory, track sales trends, and provide accounting information. The retail POS data processing system at each store may maintain a log of event data and may further provide an interface to allow the event data to be viewed and/or processed locally. The retailer, however, may have a hierarchy of managing offices that are responsible for various groupings of stores. These managing offices, which are typically remotely located, may find reviewing the event data at the various stores for which they are responsible to be inconvenient. For example, a managing office may establish communication with a store using a dial-up connection and then use commands to query the store""s database for event data or, alternatively, may download the store""s event data for subsequent processing. Unfortunately, a manual approach as described in the foregoing may be labor intensive and may also be error prone.
Embodiments of the present invention may include methods, systems, and computer program products that may facilitate monitoring of data processing system events. For example, data processing system event data may be collected and sent to an event handler program module. Once the event handler program module receives the data processing system event data, a remote program module, which resides in a different address space than the event handler program module, may be notified. The data processing system event data may then be sent from the event handler program module to the remote program module. Data processing system events may, therefore, be monitored from a remote location without the need to log in to the data processing system to manually extract the event data. Moreover, the data processing system event data may be sent from the event handler program module to the remote program module as events occur, thereby providing event notification in real-time. As a result, a remote program module need not expend processing resources polling the data processing system to determine if any events have occurred and remote personnel need not log in to the data processing system to check for events.
In particular embodiments of the present invention, the data processing system event data may be sent to the event handler program module over a socket interface. This may allow the present invention to be practiced in data processing systems that use a communication protocol that supports the socket interface, such as the Transmission Control Protocol (TCP)/Internet Protocol (IP).
In further embodiments of the present invention, communication may be established between the event handler program module and the remote program module via a distributed object Application Programming Interface (API). Moreover, the distributed object API may be used to send the data processing system event data from the event handler program module to the remote program module. In particular embodiments of the present invention, the distributed object API may be the JAVA(trademark) Remote Method Invocation (RMI) API, the Common Object Request Broker Architecture (CORBA) API, or the Distributed Component Object Model (DCOM) API.
In still further embodiments of the present invention, once the remote program module receives the data processing system event data, a second remote program module, which resides in a different address space, may be notified and the data processing system event data may be sent to the second remote program module. In this manner, a hierarchical monitoring system may be constructed in which one remote program module may send the data processing system event data to another remote program module. In particular embodiments of the present invention, remote program modules may communicate with one another via a distributed object API. Furthermore, the distributed object API may be used to send the data processing system event data from one remote program module to another remote program module. The distributed object API may be the JAVA RMI API, the CORBA API, or the DCOM API.
In other embodiments of the present invention, the data processing system event data may be classified into multiple categories. These categories may include, for example, whether an event is an error, a warning, or an informational event. In particular embodiments of the present invention, one remote program module may send to another remote program module only the data processing system event data that are classified in categories that satisfy a predetermined criterion.
In still other embodiments of the present invention, after the data processing system event data is sent to a remote program module, the data may be optionally filtered using criterion, such as date, severity, event number, etc., and then displayed on an output device using a graphical user interface (GUI). The GUI may be, for example, a Web browser or other suitable graphical interface that facilitates display of the data processing system event data.
In yet other embodiments of the present invention, the data processing system may be a point of sale (POS) system as is used, for example, in many retail stores for processing customer purchases.
Thus, the present invention may be used to facilitate remote monitoring of data processing system events. For example, in a retail application, a managing office may remotely monitor event data from one or more stores over which it has supervisory authority. Advantageously, the present invention is scalable, which may allow managing offices in the business hierarchy to remotely monitor event data received at offices and/or stores for which they have management responsibility. The present invention may use standardized protocols for communication, such as sockets and/or distributed object APIs, to allow for easy integration with data processing systems that already support these protocols.
Although the present invention has been described above primarily with respect to method aspects of the invention, it will be understood that the present invention may be embodied as methods, systems, and/or computer program products.